El presente trabajo se elaboro a principalmente a partir de registros de primates en Rica. Ademas se utilizo la base de datos brindada por WorldClim para elaborar un archvio raster con el objetivo de representar los puntos bajos y altos en Costa Rica.
library(sf)
library(raster)
library(dplyr)
library(spData)
library(leaflet)
library(plotly)
library(DT)
primates <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/primates-cr-registros.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
cantones <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
quiet = TRUE
)
st_crs(primates) = 4326
provincias <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_provincias_simp_wgs84.geojson",
quiet = TRUE
)
st_crs(cantones) = 4326
# Datos de especies filtradas
primates <-
primates %>%
st_join(cantones["canton"])
primates <-
primates %>%
st_join(provincias["provincia"])
alou <- primates %>%
select(species,
provincia,
canton,
eventDate,
decimalLongitude,
decimalLatitude) %>%
filter(species == "Alouatta palliata")
saimi <- primates %>%
select(species,
provincia,
canton,
eventDate,
decimalLongitude,
decimalLatitude) %>%
filter(species == "Saimiri oerstedii")
ate <- primates %>%
select(species,
provincia,
canton,
eventDate,
decimalLongitude,
decimalLatitude) %>%
filter(species == "Ateles geoffroyi")
cebu <- primates %>%
select(species,
provincia,
canton,
eventDate,
decimalLongitude,
decimalLatitude) %>%
filter(species == "Cebus capucinus")
# Datos raster
alt <- getData(
"worldclim",
var = "alt",
res = .5,
lon = -84,
lat = 10
)
altitud <-
alt %>%
crop(provincias) %>%
mask(provincias)
Se muestra una tabla que contiene todos los registros de las 4 especies de primates almacenadas en la base de datos.
primates %>%
st_drop_geometry() %>%
select(family, species, stateProvince, canton, eventDate) %>%
datatable(
colnames = c("Familia", "Especie", "Provincia", "Canton", "Fecha"),
options = list(
searchHighlight = TRUE,
language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
)
)
# Conteo de especies
sum(with(primates,species == "Alouatta palliata"))
## [1] 1994
sum(with(primates,species == "Saimiri oerstedii"))
## [1] 453
sum(with(primates,species == "Ateles geoffroyi"))
## [1] 599
sum(with(primates,species == "Cebus capucinus"))
## [1] 1463
# Grafico pastel
nespecies <- c(1994, 453, 599, 1463)
etiqueta <- c("Alouatta palliata",
"Saimiri oerstedii",
"Ateles geoffroyi",
"Cebus capucinus")
colors <- c('006633', '33CC33',
'66CCCC', '006699',
'330099')
t <- list(family = "Bookman",
size = 11,
color = '333333')
primates %>%
plot_ly(
labels = ~ etiqueta,
values = ~ nespecies,
type = "pie",
marker = list(colors = colors,
line = list(color = '#000000', width = 1)))%>%
config(locale = "es")%>%
layout(
title = "Abundancia de primates en Costa Rica",
font = t,
xaxis = list(
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
),
yaxis = list(
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
)
)
# Bloque popups
palou <- paste0("<b>", "Especie: ","</b>",
(alou$species),"<br>",
"<b>","Provincia: ","</b>",
(alou$provincia),"<br>",
"<b>", "Canton: ","</b>",
(alou$canton),"<br>",
"<b>", "Fecha: ","</b>",
(alou$eventDate),"<br>",
"<b>", "Coordenadas: ","</b>",
(alou$decimalLongitude),
(alou$decimalLatitude)
)
psaimi <- paste0("<b>", "Especie: ","</b>",
(saimi$species),"<br>",
"<b>","Provincia: ","</b>",
(saimi$provincia),"<br>",
"<b>", "Canton: ","</b>",
(saimi$canton),"<br>",
"<b>", "Fecha: ","</b>",
(saimi$eventDate),"<br>",
"<b>", "Coordenadas: ","</b>",
(saimi$decimalLongitude),
(saimi$decimalLatitude)
)
pate <- paste0("<b>", "Especie: ","</b>",
(ate$species),"<br>",
"<b>","Provincia: ","</b>",
(ate$provincia),"<br>",
"<b>", "Canton: ","</b>",
(ate$canton),"<br>",
"<b>", "Fecha: ","</b>",
(ate$eventDate),"<br>",
"<b>", "Coordenadas: ","</b>",
(ate$decimalLongitude),
(ate$decimalLatitude)
)
pcebu <- paste0("<b>", "Especie: ","</b>",
(cebu$species),"<br>",
"<b>","Provincia: ","</b>",
(cebu$provincia),"<br>",
"<b>", "Canton: ","</b>",
(cebu$canton),"<br>",
"<b>", "Fecha: ","</b>",
(cebu$eventDate),"<br>",
"<b>", "Coordenadas: ","</b>",
(cebu$decimalLongitude),
(cebu$decimalLatitude)
)
# Color raster
rcol <- colorNumeric(c("#00CC00", "#FFFF66", "#FF0000"),
values(altitud),
na.color = "transparent")
# Mapa
primates %>%
leaflet() %>%
addProviderTiles(providers$OpenStreetMap.Mapnik,
group = "OpenStreetMap") %>%
addProviderTiles(providers$Stamen.TonerLite,
group = "Stamen Toner Lite") %>%
addProviderTiles(providers$Esri.WorldImagery,
group = "Imágenes de ESRI") %>%
addRasterImage(
altitud,
colors = rcol,
opacity = 0.8,
group = "Altitud") %>%
addCircleMarkers(
data = alou,
stroke = F,
radius = 4,
fillColor = '#006666',
fillOpacity = 1,
popup = palou,
group = ("Alouatta palliata")
) %>%
addCircleMarkers(
data = saimi,
stroke = F,
radius = 4,
fillColor = '#660033',
fillOpacity = 1,
popup = psaimi,
group = "Saimiri oerstedii"
) %>%
addCircleMarkers(
data = ate,
stroke = F,
radius = 4,
fillColor = '#003300',
fillOpacity = 1,
popup = pate,
group = "Ateles geoffroyi"
) %>%
addCircleMarkers(
data = cebu,
stroke = F,
radius = 4,
fillColor = '#666600',
fillOpacity = 1,
popup = pcebu,
group = "Cebus capucinus"
) %>%
addLayersControl(
baseGroups = c("OpenStreetMap", "Stamen Toner Lite",
"Imágenes de ESRI"),
overlayGroups = c("Alouatta palliata", "Saimiri oerstedii",
"Ateles geoffroyi", "Cebus capucinus"
,"Altitud")
) %>%
addMiniMap(tiles = providers$Stamen.OpenStreetMap.Mapnik,
position = "bottomleft",
toggleDisplay = TRUE
)